import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import { defineConfig, globalIgnores } from 'eslint/config';

export default defineConfig([
  globalIgnores(['dist']),
  {
    files: ['**/*.{js,jsx}'],
    extends: [
      js.configs.recommended,
      reactHooks.configs['recommended-latest'],
      reactRefresh.configs.vite,
    ],
    languageOptions: {
      ecmaVersion: 2020,
      globals: {
        ...globals.browser,
        // React 自动导入的全局变量
        createRef: 'readonly',
        forwardRef: 'readonly',
        lazy: 'readonly',
        memo: 'readonly',
        startTransition: 'readonly',
        useCallback: 'readonly',
        useContext: 'readonly',
        useDebugValue: 'readonly',
        useDeferredValue: 'readonly',
        useEffect: 'readonly',
        useId: 'readonly',
        useImperativeHandle: 'readonly',
        useInsertionEffect: 'readonly',
        useLayoutEffect: 'readonly',
        useMemo: 'readonly',
        useReducer: 'readonly',
        useRef: 'readonly',
        useState: 'readonly',
        useSyncExternalStore: 'readonly',
        useTransition: 'readonly',
      },
      parserOptions: {
        ecmaVersion: 'latest',
        ecmaFeatures: { jsx: true },
        sourceType: 'module',
      },
    },
    rules: {
      'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
    },
  },
]);
